***** PANEL A: Asymmetry
***Constrained Lines 1-2 - 30 days

use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear

drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m



capture drop ratio
gen ratio=kurtosis/freq


gen d_dieselr_pos=.
replace d_dieselr_pos=d_dieselr if d_dieselr>=0 & d_dieselr!=.
replace d_dieselr_pos=0 if d_dieselr<0 & d_dieselr!=.

gen d_dieselr_neg=.
replace d_dieselr_neg=d_dieselr if d_dieselr<0 & d_dieselr!=.
replace d_dieselr_neg=0 if d_dieselr>=0 & d_dieselr!=.

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff7_reg
capture drop coeff8_reg
capture drop coeff9_reg
capture drop coeff10_reg



capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop se_coeff7_reg
capture drop se_coeff8_reg
capture drop se_coeff9_reg
capture drop se_coeff10_reg

capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff7_reg=.
gen coeff8_reg=.
gen coeff9_reg=.
gen coeff10_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen se_coeff7_reg=.
gen se_coeff8_reg=.
gen se_coeff9_reg=.
gen se_coeff10_reg=.
gen df_reg=.

gen r2=.
gen r2_a=.



***** PANEL A: Constrained Lines 1-2 - 30 days


****** H=30 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr_pos##(c.ratio ) c.d_dieselr_neg##(c.ratio ) ///
c.local_shock10##(c.ratio ) /// 
c.m_dprix##(c.ratio ) ///
 c.l.d_dieselr_pos##(c.ratio ) ///
 c.l2.d_dieselr_pos##(c.ratio ) ///
 c.l3.d_dieselr_pos##(c.ratio ) ///
 c.l4.d_dieselr_pos##(c.ratio ) /// 
 c.l5.d_dieselr_pos##(c.ratio ) ///
 c.l.d_dieselr_neg##(c.ratio ) ///
 c.l2.d_dieselr_neg##(c.ratio ) ///
 c.l3.d_dieselr_neg##(c.ratio ) ///
 c.l4.d_dieselr_neg##(c.ratio ) /// 
 c.l5.d_dieselr_neg##(c.ratio ) ///
		c.l.local_shock10##(c.ratio )  /// 
		c.l2.local_shock10##(c.ratio ) /// 
		c.l3.local_shock10##(c.ratio ) ///
		c.l4.local_shock10##(c.ratio ) /// 
		c.l5.local_shock10##(c.ratio ) ///
	c.l.m_dprix##(c.ratio )  /// 
	c.l2.m_dprix##(c.ratio ) /// 
	c.l3.m_dprix##(c.ratio ) /// 
	c.l4.m_dprix##(c.ratio ) ///
	c.l5.m_dprix##(c.ratio ), absorb(id) vce(cluster daten)

	
	
	replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr_pos] if num_obs==`i'
replace coeff2_reg=_b[d_dieselr_neg] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr_pos#c.ratio] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr_neg#c.ratio] if num_obs==`i'


replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr_pos] if num_obs==`i'
replace se_coeff2_reg=_se[d_dieselr_neg] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr_pos#c.ratio] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr_neg#c.ratio] if num_obs==`i'

replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff* r2 r2_a  se_coeff* df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_constrainedpanel_PanelA_asym", replace
restore 

}






***** Panel A: Unconstrained - lines 1 and 2 - H=30


bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff7_reg
capture drop coeff8_reg
capture drop coeff9_reg
capture drop coeff10_reg
capture drop coeff11_reg



capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop se_coeff7_reg
capture drop se_coeff8_reg
capture drop se_coeff9_reg
capture drop se_coeff10_reg
capture drop se_coeff11_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff7_reg=.
gen coeff8_reg=.
gen coeff9_reg=.
gen coeff10_reg=.
gen coeff11_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen se_coeff7_reg=.
gen se_coeff8_reg=.
gen se_coeff9_reg=.
gen se_coeff10_reg=.
gen se_coeff11_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.

capture drop f_prix_ht
gen f_prix_ht=0


**** H=30 ***


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff7_reg
capture drop coeff8_reg
capture drop coeff9_reg
capture drop coeff10_reg
capture drop coeff11_reg



capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop se_coeff7_reg
capture drop se_coeff8_reg
capture drop se_coeff9_reg
capture drop se_coeff10_reg
capture drop se_coeff11_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff7_reg=.
gen coeff8_reg=.
gen coeff9_reg=.
gen coeff10_reg=.
gen coeff11_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen se_coeff7_reg=.
gen se_coeff8_reg=.
gen se_coeff9_reg=.
gen se_coeff10_reg=.
gen se_coeff11_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 0/29 {
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}

foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr_neg##(c.kur_demean c.freq_demean) c.d_dieselr_pos##(c.kur_demean c.freq_demean ) ///
c.local_shock10##(c.kur_demean c.freq_demean) /// 
c.m_dprix##(c.kur_demean c.freq_demean ) ///
 c.l.d_dieselr_pos##(c.kur_demean c.freq_demean ) ///
 c.l2.d_dieselr_pos##(c.kur_demean c.freq_demean ) ///
 c.l3.d_dieselr_pos##(c.kur_demean c.freq_demean ) ///
 c.l4.d_dieselr_pos##(c.kur_demean c.freq_demean ) /// 
 c.l5.d_dieselr_pos##(c.kur_demean c.freq_demean ) ///
 c.l.d_dieselr_neg##(c.kur_demean c.freq_demean ) ///
 c.l2.d_dieselr_neg##(c.kur_demean c.freq_demean ) ///
 c.l3.d_dieselr_neg##(c.kur_demean c.freq_demean ) ///
 c.l4.d_dieselr_neg##(c.kur_demean c.freq_demean ) /// 
 c.l5.d_dieselr_neg##(c.kur_demean c.freq_demean ) ///
		c.l.local_shock10##(c.kur_demean c.freq_demean )  /// 
		c.l2.local_shock10##(c.kur_demean c.freq_demean ) /// 
		c.l3.local_shock10##(c.kur_demean c.freq_demean ) ///
		c.l4.local_shock10##(c.kur_demean c.freq_demean ) /// 
		c.l5.local_shock10##(c.kur_demean c.freq_demean ) ///
	c.l.m_dprix##(c.kur_demean c.freq_demean )  /// 
	c.l2.m_dprix##(c.kur_demean c.freq_demean ) /// 
	c.l3.m_dprix##(c.kur_demean c.freq_demean ) /// 
	c.l4.m_dprix##(c.kur_demean c.freq_demean ) ///
	c.l5.m_dprix##(c.kur_demean c.freq_demean ), absorb(id) vce(cluster daten)
	
replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr_neg] if num_obs==`i'
replace coeff2_reg=_b[d_dieselr_pos] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr_neg#c.freq_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr_neg#c.kur_demean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr_pos#c.freq_demean] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr_pos#c.kur_demean] if num_obs==`i'


replace coeff_c_reg=_b[_cons] if num_obs==`i'

replace se_coeff1_reg=_se[d_dieselr_neg] if num_obs==`i'
replace se_coeff2_reg=_se[d_dieselr_pos] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr_neg#c.freq_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr_neg#c.kur_demean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr_pos#c.freq_demean] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr_pos#c.kur_demean] if num_obs==`i'


replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff* r2 r2_a  se_coeff* df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelA_asym.dta", replace
restore 
}


**************************************
***** PANEL B: Size of the shock ****


clear all


use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear


drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m


***** PLACEBO***
***** CONSTRAINED 

capture drop ratio
gen ratio=kurtosis/freq

gen d_dieselr_lessmean=.
replace d_dieselr_lessmean=d_dieselr if abs(d_dieselr)<=0.010 & d_dieselr!=.
replace d_dieselr_lessmean=0 if abs(d_dieselr)>0.010 & d_dieselr!=.

gen d_dieselr_meantomax=.
replace d_dieselr_meantomax=d_dieselr if abs(d_dieselr)>0.010 & d_dieselr!=.
replace d_dieselr_meantomax=0 if abs(d_dieselr)<=0.010 & d_dieselr!=.

summ d_dieselr, detail 
gen abs_d=abs(d_dieselr)
summ abs_d, d

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff7_reg
capture drop coeff8_reg
capture drop coeff9_reg
capture drop coeff10_reg



capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop se_coeff7_reg
capture drop se_coeff8_reg
capture drop se_coeff9_reg
capture drop se_coeff10_reg

capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff7_reg=.
gen coeff8_reg=.
gen coeff9_reg=.
gen coeff10_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen se_coeff7_reg=.
gen se_coeff8_reg=.
gen se_coeff9_reg=.
gen se_coeff10_reg=.
gen df_reg=.

gen r2=.
gen r2_a=.



****** H=30 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr_lessmean##(c.ratio ) c.d_dieselr_meantomax##(c.ratio )   ///
c.local_shock10##(c.ratio ) /// 
c.m_dprix##(c.ratio ) ///
 c.l.d_dieselr_lessmean##(c.ratio ) ///
 c.l2.d_dieselr_lessmean##(c.ratio ) ///
 c.l3.d_dieselr_lessmean##(c.ratio ) ///
 c.l4.d_dieselr_lessmean##(c.ratio ) /// 
 c.l5.d_dieselr_lessmean##(c.ratio ) ///
 c.l.d_dieselr_meantomax##(c.ratio ) ///
 c.l2.d_dieselr_meantomax##(c.ratio ) ///
 c.l3.d_dieselr_meantomax##(c.ratio ) ///
 c.l4.d_dieselr_meantomax##(c.ratio ) /// 
 c.l5.d_dieselr_meantomax##(c.ratio ) ///
		c.l.local_shock10##(c.ratio )  /// 
		c.l2.local_shock10##(c.ratio ) /// 
		c.l3.local_shock10##(c.ratio ) ///
		c.l4.local_shock10##(c.ratio ) /// 
		c.l5.local_shock10##(c.ratio ) ///
	c.l.m_dprix##(c.ratio )  /// 
	c.l2.m_dprix##(c.ratio ) /// 
	c.l3.m_dprix##(c.ratio ) /// 
	c.l4.m_dprix##(c.ratio ) ///
	c.l5.m_dprix##(c.ratio ) if abs(d_dieselr)<0.059, absorb(id) vce(cluster daten)

	
	replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr_lessmean] if num_obs==`i'
replace coeff2_reg=_b[d_dieselr_meantomax] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr_lessmean#c.ratio] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr_meantomax#c.ratio] if num_obs==`i'



replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr_lessmean] if num_obs==`i'
replace se_coeff2_reg=_se[d_dieselr_meantomax] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr_lessmean#c.ratio] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr_meantomax#c.ratio] if num_obs==`i'

replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff* r2 r2_a  se_coeff* df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_constrainedpanel_PanelB_size", replace
restore 

}



***** UNCONSTRAINED ****



bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff7_reg
capture drop coeff8_reg
capture drop coeff9_reg
capture drop coeff10_reg
capture drop coeff11_reg
capture drop coeff12_reg



capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop se_coeff7_reg
capture drop se_coeff8_reg
capture drop se_coeff9_reg
capture drop se_coeff10_reg
capture drop se_coeff11_reg
capture drop se_coeff12_reg

capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff7_reg=.
gen coeff8_reg=.
gen coeff9_reg=.
gen coeff10_reg=.
gen coeff11_reg=.
gen coeff12_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen se_coeff7_reg=.
gen se_coeff8_reg=.
gen se_coeff9_reg=.
gen se_coeff10_reg=.
gen se_coeff11_reg=.
gen se_coeff12_reg=.

gen df_reg=.
gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0



**** H=30 ***


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff7_reg
capture drop coeff8_reg
capture drop coeff9_reg
capture drop coeff10_reg
capture drop coeff11_reg
capture drop coeff12_reg



capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop se_coeff7_reg
capture drop se_coeff8_reg
capture drop se_coeff9_reg
capture drop se_coeff10_reg
capture drop se_coeff11_reg
capture drop se_coeff12_reg

capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff7_reg=.
gen coeff8_reg=.
gen coeff9_reg=.
gen coeff10_reg=.
gen coeff11_reg=.
gen coeff12_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen se_coeff7_reg=.
gen se_coeff8_reg=.
gen se_coeff9_reg=.
gen se_coeff10_reg=.
gen se_coeff11_reg=.
gen se_coeff12_reg=.

gen df_reg=.
gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 0/29 {
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}

foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr_lessmean##(c.kur_demean c.freq_demean ) c.d_dieselr_meantomax##(c.kur_demean c.freq_demean )  ///
c.local_shock10##(c.kur_demean c.freq_demean) /// 
c.m_dprix##(c.kur_demean c.freq_demean ) ///
c.l.d_dieselr_lessmean##(c.kur_demean c.freq_demean ) ///
c.l2.d_dieselr_lessmean##(c.kur_demean c.freq_demean ) ///
c.l3.d_dieselr_lessmean##(c.kur_demean c.freq_demean ) ///
c.l4.d_dieselr_lessmean##(c.kur_demean c.freq_demean ) /// 
c.l5.d_dieselr_lessmean##(c.kur_demean c.freq_demean ) ///
c.l.d_dieselr_meantomax##(c.kur_demean c.freq_demean ) ///
c.l2.d_dieselr_meantomax##(c.kur_demean c.freq_demean ) ///
c.l3.d_dieselr_meantomax##(c.kur_demean c.freq_demean ) ///
c.l4.d_dieselr_meantomax##(c.kur_demean c.freq_demean ) /// 
c.l5.d_dieselr_meantomax##(c.kur_demean c.freq_demean ) ///
c.l.local_shock10##(c.kur_demean c.freq_demean )  /// 
c.l2.local_shock10##(c.kur_demean c.freq_demean ) /// 
c.l3.local_shock10##(c.kur_demean c.freq_demean ) ///
c.l4.local_shock10##(c.kur_demean c.freq_demean ) /// 
c.l5.local_shock10##(c.kur_demean c.freq_demean ) ///
c.l.m_dprix##(c.kur_demean c.freq_demean )  /// 
c.l2.m_dprix##(c.kur_demean c.freq_demean ) /// 
c.l3.m_dprix##(c.kur_demean c.freq_demean ) /// 
c.l4.m_dprix##(c.kur_demean c.freq_demean ) ///
c.l5.m_dprix##(c.kur_demean c.freq_demean ) if abs(d_dieselr)<0.059, absorb(id) vce(cluster daten)
	
replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr_lessmean] if num_obs==`i'
replace coeff2_reg=_b[d_dieselr_meantomax] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr_lessmean#c.freq_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr_lessmean#c.kur_demean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr_meantomax#c.freq_demean] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr_meantomax#c.kur_demean] if num_obs==`i'



replace coeff_c_reg=_b[_cons] if num_obs==`i'

replace se_coeff1_reg=_se[d_dieselr_lessmean] if num_obs==`i'
replace se_coeff2_reg=_se[d_dieselr_meantomax] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr_lessmean#c.freq_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr_lessmean#c.kur_demean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr_meantomax#c.freq_demean] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr_meantomax#c.kur_demean] if num_obs==`i'




replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff* r2 r2_a  se_coeff* df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelB_size.dta", replace
restore 
}


********************************************

***** Panel C: Moving average



use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear

*gen t=(prix_ht==.)
drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)

drop diesel_rotterdam_euro resid_movav_diesel dprix1 

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m


******** RATIO
capture drop ratio
gen ratio=kurtosis/freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop df_reg


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.





***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_MA
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_MA
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_dieselr##c.ratio c.local_shock10##c.ratio c.m_dprix##c.ratio c.l.d_dieselr##c.ratio c.l2.d_dieselr##c.ratio c.l3.d_dieselr##c.ratio c.l4.d_dieselr##c.ratio ///
c.l5.d_dieselr##c.ratio ///
		c.l.local_shock10##c.ratio c.l2.local_shock10##c.ratio c.l3.local_shock10##c.ratio c.l4.local_shock10##c.ratio c.l5.local_shock10##c.ratio ///
	c.l.m_dprix##c.ratio  c.l2.m_dprix##c.ratio c.l3.m_dprix##c.ratio c.l4.m_dprix##c.ratio c.l5.m_dprix##c.ratio, absorb(id) vce(cluster daten)

	
replace r2=e(r2)
replace r2_a=e(r2_a)
	
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.ratio] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.ratio] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'



preserve
keep coeff1_reg coeff2_reg r2 r2_a  se_coeff1_reg se_coeff2_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_constrainedpanel_PanelC_MA.dta", replace
restore
}




***** UNCONSTRAINED kur et freq ****


capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop df_reg


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen df_reg=.




***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_MA
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_MA
replace f_prix_ht=f_prix_ht_temp+f_prix_ht

 
areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean) c.local_shock10##(c.freq_demean c.kur_demean) c.m_dprix##(c.freq_demean c.kur_demean) c.l.d_dieselr##(c.freq_demean c.kur_demean) ///
 c.l2.d_dieselr##(c.freq_demean c.kur_demean) c.l3.d_dieselr##(c.freq_demean c.kur_demean) c.l4.d_dieselr##(c.freq_demean c.kur_demean) c.l5.d_dieselr##(c.freq_demean c.kur_demean) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean)  c.l2.local_shock10##(c.freq_demean c.kur_demean) c.l3.local_shock10##(c.freq_demean c.kur_demean) c.l4.local_shock10##(c.freq_demean c.kur_demean) ///
		c.l5.local_shock10##(c.freq_demean c.kur_demean)	c.l.m_dprix##(c.freq_demean c.kur_demean)  c.l2.m_dprix##(c.freq_demean c.kur_demean) c.l3.m_dprix##(c.freq_demean c.kur_demean) ///
		c.l4.m_dprix##(c.freq_demean c.kur_demean) c.l5.m_dprix##(c.freq_demean c.kur_demean), absorb(id) vce(cluster daten)

	
replace r2=e(r2)
replace r2_a=e(r2_a)
	
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff* r2 r2_a  se_coeff* df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelC_MA.dta", replace
restore 
}



***********************************
******* Panel D: Brent 

******* PART 1: H= 24

use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear
merge m:1 daten using "$path\Intermediary Data\data_brent.dta"
drop _m
drop if prix_ht==.
drop j j3


drop diesel_rotterdam_euro resid_movav_diesel dprix1 
xtset id daten
gen d_brenteuro=ln(brenteuro)-ln(l1.brenteuro)

capture drop d_dieselr
gen d_dieselr=d_brenteuro

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m

******** RATIO
capture drop ratio
gen ratio=kurtosis/freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.



***** H=24 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 1/23 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly24
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 24 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly24
replace f_prix_ht=f_prix_ht_temp+f_prix_ht




areg f_prix_ht c.d_dieselr##c.ratio c.local_shock10##c.ratio c.m_dprix##c.ratio c.l.d_dieselr##c.ratio c.l2.d_dieselr##c.ratio c.l3.d_dieselr##c.ratio c.l4.d_dieselr##c.ratio ///
c.l5.d_dieselr##c.ratio ///
		c.l.local_shock10##c.ratio c.l2.local_shock10##c.ratio c.l3.local_shock10##c.ratio c.l4.local_shock10##c.ratio c.l5.local_shock10##c.ratio ///
	c.l.m_dprix##c.ratio  c.l2.m_dprix##c.ratio c.l3.m_dprix##c.ratio c.l4.m_dprix##c.ratio c.l5.m_dprix##c.ratio, absorb(id) vce(cluster daten)

	

	
	replace r2=e(r2)
replace r2_a=e(r2_a)

matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.ratio] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'



replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.ratio] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg r2 r2_a  se_coeff1_reg se_coeff2_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==24
save "$path\Graphs_Tables\Table4_constrainedpanel_PanelD_brentonly.dta", replace
restore
}



**** Panel D, unconstrained, H=24


capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen df_reg=.

gen r2=.
gen r2_a=.



***** H=24 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/23 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly24
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 24 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly24
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean) c.local_shock10##(c.freq_demean c.kur_demean) c.m_dprix##(c.freq_demean c.kur_demean) c.l.d_dieselr##(c.freq_demean c.kur_demean) ///
 c.l2.d_dieselr##(c.freq_demean c.kur_demean) c.l3.d_dieselr##(c.freq_demean c.kur_demean) c.l4.d_dieselr##(c.freq_demean c.kur_demean) c.l5.d_dieselr##(c.freq_demean c.kur_demean) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean)  c.l2.local_shock10##(c.freq_demean c.kur_demean) c.l3.local_shock10##(c.freq_demean c.kur_demean) c.l4.local_shock10##(c.freq_demean c.kur_demean) ///
		c.l5.local_shock10##(c.freq_demean c.kur_demean)	c.l.m_dprix##(c.freq_demean c.kur_demean)  c.l2.m_dprix##(c.freq_demean c.kur_demean) c.l3.m_dprix##(c.freq_demean c.kur_demean) ///
		c.l4.m_dprix##(c.freq_demean c.kur_demean) c.l5.m_dprix##(c.freq_demean c.kur_demean), absorb(id) vce(cluster daten)

	
	replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'



replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==24
save "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelD_brentonly.dta", replace
restore


}



****** PART 2: H=30


use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear
merge m:1 daten using "$path\Intermediary Data\data_brent.dta"
drop _m


drop if prix_ht==.
drop  j j3


drop diesel_rotterdam_euro resid_movav_diesel dprix1 
xtset id daten
gen d_brenteuro=ln(brenteuro)-ln(l1.brenteuro)

capture drop d_dieselr
gen d_dieselr=d_brenteuro

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m

******** RATIO
capture drop ratio
gen ratio=kurtosis/freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.



***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##c.ratio c.local_shock10##c.ratio c.m_dprix##c.ratio c.l.d_dieselr##c.ratio c.l2.d_dieselr##c.ratio c.l3.d_dieselr##c.ratio c.l4.d_dieselr##c.ratio ///
c.l5.d_dieselr##c.ratio ///
		c.l.local_shock10##c.ratio c.l2.local_shock10##c.ratio c.l3.local_shock10##c.ratio c.l4.local_shock10##c.ratio c.l5.local_shock10##c.ratio ///
	c.l.m_dprix##c.ratio  c.l2.m_dprix##c.ratio c.l3.m_dprix##c.ratio c.l4.m_dprix##c.ratio c.l5.m_dprix##c.ratio, absorb(id) vce(cluster daten)


	
	replace r2=e(r2)
replace r2_a=e(r2_a)

matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.ratio] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'



replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.ratio] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg r2 r2_a  se_coeff1_reg se_coeff2_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_constrainedpanel_PanelD_brentonly2.dta", replace
restore
}



**** Panel D, unconstrained, H=30


capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen df_reg=.

gen r2=.
gen r2_a=.



***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_brentonly
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


 
areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean) c.local_shock10##(c.freq_demean c.kur_demean) c.m_dprix##(c.freq_demean c.kur_demean) c.l.d_dieselr##(c.freq_demean c.kur_demean) ///
 c.l2.d_dieselr##(c.freq_demean c.kur_demean) c.l3.d_dieselr##(c.freq_demean c.kur_demean) c.l4.d_dieselr##(c.freq_demean c.kur_demean) c.l5.d_dieselr##(c.freq_demean c.kur_demean) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean)  c.l2.local_shock10##(c.freq_demean c.kur_demean) c.l3.local_shock10##(c.freq_demean c.kur_demean) c.l4.local_shock10##(c.freq_demean c.kur_demean) ///
		c.l5.local_shock10##(c.freq_demean c.kur_demean)	c.l.m_dprix##(c.freq_demean c.kur_demean)  c.l2.m_dprix##(c.freq_demean c.kur_demean) c.l3.m_dprix##(c.freq_demean c.kur_demean) ///
		c.l4.m_dprix##(c.freq_demean c.kur_demean) c.l5.m_dprix##(c.freq_demean c.kur_demean), absorb(id) vce(cluster daten)

	
	replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'



replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelD_brentonly2.dta", replace
restore


}

************************************************
**** Panel E: Rotterdam excluding extreme values


use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear


drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m

******** RATIO
capture drop ratio
gen ratio=kurtosis/freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen df_reg=.
gen r2=.
gen r2_a=.


***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_dieselr##c.ratio c.local_shock10##c.ratio c.m_dprix##c.ratio c.l.d_dieselr##c.ratio c.l2.d_dieselr##c.ratio c.l3.d_dieselr##c.ratio c.l4.d_dieselr##c.ratio ///
c.l5.d_dieselr##c.ratio ///
		c.l.local_shock10##c.ratio c.l2.local_shock10##c.ratio c.l3.local_shock10##c.ratio c.l4.local_shock10##c.ratio c.l5.local_shock10##c.ratio ///
	c.l.m_dprix##c.ratio  c.l2.m_dprix##c.ratio c.l3.m_dprix##c.ratio c.l4.m_dprix##c.ratio c.l5.m_dprix##c.ratio if abs(d_dieselr)<0.059, absorb(id) vce(cluster daten)

	
	replace r2=e(r2)
replace r2_a=e(r2_a)

matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.ratio] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'

replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.ratio] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg r2 r2_a  se_coeff1_reg se_coeff2_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_constrainedpanel_PanelE_noxtremevalues.dta", replace
restore
}



****** Panel E: Unconstrained panel

capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen df_reg=.

gen r2=.
gen r2_a=.

***** H=30 ****
capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean) c.local_shock10##(c.freq_demean c.kur_demean) c.m_dprix##(c.freq_demean c.kur_demean) c.l.d_dieselr##(c.freq_demean c.kur_demean) ///
 c.l2.d_dieselr##(c.freq_demean c.kur_demean) c.l3.d_dieselr##(c.freq_demean c.kur_demean) c.l4.d_dieselr##(c.freq_demean c.kur_demean) c.l5.d_dieselr##(c.freq_demean c.kur_demean) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean)  c.l2.local_shock10##(c.freq_demean c.kur_demean) c.l3.local_shock10##(c.freq_demean c.kur_demean) c.l4.local_shock10##(c.freq_demean c.kur_demean) ///
		c.l5.local_shock10##(c.freq_demean c.kur_demean)	c.l.m_dprix##(c.freq_demean c.kur_demean)  c.l2.m_dprix##(c.freq_demean c.kur_demean) c.l3.m_dprix##(c.freq_demean c.kur_demean) ///
		c.l4.m_dprix##(c.freq_demean c.kur_demean) c.l5.m_dprix##(c.freq_demean c.kur_demean) if abs(d_dieselr)<0.059, absorb(id) vce(cluster daten)

	
	replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'



replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
preserve
keep coeff1_reg coeff2_reg coeff3_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg df_reg num_obs
gen name="`i'"
gen charact="unconstrained"
keep if num_obs==30
save "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelE_noxtremevalues.dta", replace
restore
}







****** Format Table 4 ***


**** Constrained ***

clear

use  "$path\Graphs_Tables\Table4_constrainedpanel_PanelA_asym.dta", replace
append using "$path\Graphs_Tables\Table4_constrainedpanel_PanelB_size.dta"
append using "$path\Graphs_Tables\Table4_constrainedpanel_PanelC_MA.dta"
append using "$path\Graphs_Tables\Table4_constrainedpanel_PanelD_brentonly.dta"
append using "$path\Graphs_Tables\Table4_constrainedpanel_PanelD_brentonly2.dta"
append using "$path\Graphs_Tables\Table4_constrainedpanel_PanelE_noxtremevalues.dta"


capture drop coeff5_reg coeff6_reg coeff7_reg coeff8_reg coeff9_reg coeff10_reg
capture drop se_coeff5_reg se_coeff6_reg se_coeff7_reg se_coeff8_reg se_coeff9_reg se_coeff10_reg

gen id_col=_n

xpose, clear

drop if _n==1

set obs 20

capture drop col1
capture drop col2
capture drop col3
capture drop col4


gen col1=.
replace col1=v1[3] if _n==1
replace col1=v1[8] if _n==2
replace col1=v1[4] if _n==3
replace col1=v1[9] if _n==4

replace col1=v2[3] if _n==5
replace col1=v2[8] if _n==6
replace col1=v2[4] if _n==7
replace col1=v2[9] if _n==8

replace col1=v3[2] if _n==9
replace col1=v3[7] if _n==10
replace col1=v4[2] if _n==11
replace col1=v4[7] if _n==12

replace col1=v5[2] if _n==13
replace col1=v5[7] if _n==14

replace col1=v6[2] if _n==15
replace col1=v6[7] if _n==16



gen col2=.
replace col2=v1[1] if _n==1
replace col2=v1[6] if _n==2
replace col2=v1[2] if _n==3
replace col2=v1[7] if _n==4

replace col2=v2[1] if _n==5
replace col2=v2[6] if _n==6
replace col2=v2[2] if _n==7
replace col2=v2[7] if _n==8

replace col2=v3[1] if _n==9
replace col2=v3[6] if _n==10
replace col2=v4[1] if _n==11
replace col2=v4[6] if _n==12

replace col2=v5[1] if _n==13
replace col2=v5[6] if _n==14

replace col2=v6[1] if _n==15
replace col2=v6[6] if _n==16



gen col3=.
replace col3=v1[11] if _n==1
replace col3=v2[11] if _n==5

replace col3=v3[11] if _n==9
replace col3=v4[11] if _n==11

replace col3=v5[11] if _n==13
replace col3=v6[11] if _n==15


gen Panel="Panel A: Asymmetry" if _n==1
replace Panel="Panel B: Size of the shock" if _n==5
replace Panel="Panel C: Moving Average" if _n==9
replace Panel="Panel D: Brent" if _n==11
replace Panel="Panel E: Rotterdam - Excl. 1%-extreme values" if _n==15

capture drop Var
gen Var="Positive, H=30" if _n==1
replace Var="Negative, H=30" if _n==3
replace Var="Below median, H=30 days" if _n==5
replace Var="Above median, H=30 days" if _n==7
replace Var="H=30 days" if _n==9
replace Var="H=24 days" if _n==11
replace Var="H=30 days" if _n==13
replace Var="H=30 days" if _n==15


drop v*

gen tstatcol1=.
gen tstatcol2=.



foreach i in 1 3 5 7 9 11 13 15{
replace tstatcol1=col1[`i']/col1[`i'+1] if _n==`i'
replace tstatcol2=col2[`i']/col2[`i'+1] if _n==`i'
}

gen starscol1=""
gen starscol2=""


foreach i in 1 2 {
replace starscol`i'="***" if abs(tstatcol`i')>=2.58 & tstatcol`i'!=.
replace starscol`i'="**" if abs(tstatcol`i')<2.58 & abs(tstatcol`i')>=1.96 & tstatcol`i'!=.
replace starscol`i'="*" if abs(tstatcol`i')<1.96 & abs(tstatcol`i')>=1.64 & tstatcol`i'!=.
}

drop tstat*
rename col* coltemp*

foreach i in 1 2 {
replace coltemp`i'=round(coltemp`i', 0.001)
tostring coltemp`i', gen(coltempbis`i') force format("%9.3f")  
egen col`i'=concat(coltempbis`i' starscol`i')
}


rename col1 ShockxRatio
rename col2 Shock_constr
rename coltemp3 R2_constr


keep Panel Var ShockxRatio Shock_constr R2_constr 
order Panel Var ShockxRatio Shock_constr R2_constr 
replace R2=round(R2, 0.001)
format %9.3f  R2
drop if _n>16


gen num_obs=_n

save "$path\Graphs_Tables\Table4_constrainedpanel_ALL.dta", replace



**** Unconstrained


clear

use  "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelA_asym.dta", replace
append using "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelB_size.dta"
append using "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelC_MA.dta"
append using "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelD_brentonly.dta"
append using "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelD_brentonly2.dta"
append using "$path\Graphs_Tables\Table4_unconstrainedpanel_PanelE_noxtremevalues.dta"

capture drop  coeff7_reg coeff8_reg coeff9_reg coeff10_reg coeff11_reg
capture drop  se_coeff7_reg se_coeff8_reg se_coeff9_reg se_coeff10_reg se_coeff11_reg

gen id_col=_n

xpose, clear

drop if _n==1

capture drop col1
capture drop col2
capture drop col3
capture drop col4


gen col1=.
replace col1=v1[5] if _n==1
replace col1=v1[12] if _n==2
replace col1=v1[3] if _n==3
replace col1=v1[10] if _n==4

replace col1=v2[3] if _n==5
replace col1=v2[10] if _n==6
replace col1=v2[5] if _n==7
replace col1=v2[12] if _n==8

replace col1=v3[2] if _n==9
replace col1=v3[9] if _n==10
replace col1=v4[2] if _n==11
replace col1=v4[9] if _n==12

replace col1=v5[2] if _n==13
replace col1=v5[9] if _n==14

replace col1=v6[2] if _n==15
replace col1=v6[9] if _n==16



gen col2=.
replace col2=v1[6] if _n==1
replace col2=v1[13] if _n==2
replace col2=v1[4] if _n==3
replace col2=v1[11] if _n==4

replace col2=v2[4] if _n==5
replace col2=v2[11] if _n==6
replace col2=v2[6] if _n==7
replace col2=v2[13] if _n==8

replace col2=v3[3] if _n==9
replace col2=v3[10] if _n==10
replace col2=v4[3] if _n==11
replace col2=v4[10] if _n==12

replace col2=v5[3] if _n==13
replace col2=v5[10] if _n==14

replace col2=v6[3] if _n==15
replace col2=v6[10] if _n==16


gen col3=.
replace col3=v1[2] if _n==1
replace col3=v1[9] if _n==2
replace col3=v1[1] if _n==3
replace col3=v1[8] if _n==4

replace col3=v2[1] if _n==5
replace col3=v2[8] if _n==6
replace col3=v2[2] if _n==7
replace col3=v2[9] if _n==8

replace col3=v3[1] if _n==9
replace col3=v3[8] if _n==10
replace col3=v4[1] if _n==11
replace col3=v4[8] if _n==12

replace col3=v5[1] if _n==13
replace col3=v5[8] if _n==14

replace col3=v6[1] if _n==15
replace col3=v6[8] if _n==16



gen col4=.
replace col4=v1[15] if _n==1
replace col4=v2[15] if _n==5

replace col4=v3[15] if _n==9
replace col4=v4[15] if _n==11

replace col4=v5[15] if _n==13
replace col4=v6[15] if _n==15


gen Panel="Panel A: Asymmetry" if _n==1
replace Panel="Panel B: Size of the shock" if _n==5
replace Panel="Panel C: Moving Average" if _n==9
replace Panel="Panel D: Brent" if _n==11
replace Panel="Panel E: Rotterdam - Excl. 1%-extreme values" if _n==15

capture drop Var
gen Var="Positive, H=30" if _n==1
replace Var="Negative, H=30" if _n==3
replace Var="Below median, H=30 days" if _n==5
replace Var="Above median, H=30 days" if _n==7
replace Var="H=30 days" if _n==9
replace Var="H=24 days" if _n==11
replace Var="H=30 days" if _n==13
replace Var="H=30 days" if _n==15


gen tstatcol1=.
gen tstatcol2=.
gen tstatcol3=.



foreach i in 1 3 5 7 9 11 13 15 {
replace tstatcol1=col1[`i']/col1[`i'+1] if _n==`i'
replace tstatcol2=col2[`i']/col2[`i'+1] if _n==`i'
replace tstatcol3=col3[`i']/col3[`i'+1] if _n==`i'
}

gen starscol1=""
gen starscol2=""
gen starscol3=""


foreach i in 1 2 3 {
replace starscol`i'="***" if abs(tstatcol`i')>=2.58 & tstatcol`i'!=.
replace starscol`i'="**" if abs(tstatcol`i')<2.58 & abs(tstatcol`i')>=1.96 & tstatcol`i'!=.
replace starscol`i'="*" if abs(tstatcol`i')<1.96 & abs(tstatcol`i')>=1.64 & tstatcol`i'!=.
}

drop tstat*
rename col* coltemp*

foreach i in 1 2 3 {
replace coltemp`i'=round(coltemp`i', 0.001)
tostring coltemp`i', gen(coltempbis`i') force format("%9.3f")  
egen col`i'=concat(coltempbis`i' starscol`i')
}


rename col1 ShockxFreq
rename col2 ShockxKurtosis
rename col3 Shock_uconstr
rename coltemp4 R2_uconstr


keep Panel Var ShockxFreq ShockxKurtosis Shock_uconstr R2_uconstr
order Panel Var ShockxFreq ShockxKurtosis Shock_uconstr R2_uconstr
replace R2_uconstr=round(R2_uconstr, 0.001)
format %9.3f  R2_uconstr
drop if _n>16


gen num_obs=_n


order Panel Var ShockxFreq ShockxKurtosis Shock_uconstr R2_uconstr num_obs
save "$path\Graphs_Tables\Table4_unconstrainedpanel_ALL.dta", replace



merge 1:1 num_obs using "$path\Graphs_Tables\Table4_constrainedpanel_ALL.dta"
drop _merge
drop num_obs

order Panel Var ShockxRatio Shock_constr R2_constr ShockxFreq ShockxKurtosis Shock_uconstr R2_uconstr

drop if _n>16
save "$path\Graphs_Tables\Table4_edited.dta", replace


